package sortarray

/*
* @author: hjz
* @time: 2025/4/27 20:02
 */

// bubbleSort  冒泡排序 O(n^2) 空间复杂度O(1) 稳定
func bubbleSort(arr []int) {
	for i := 0; i < len(arr); i++ {
		// 每次遍历后，最大的元素会冒泡到最后
		for j := 0; j < len(arr)-i-1; j++ {
			if arr[j] > arr[j+1] {
				// 交换相邻元素
				arr[j], arr[j+1] = arr[j+1], arr[j]
			}
		}
	}
}

// selectSort 选择排序 O(n^2) 空间复杂度O(1) 不稳定
func selectSort(arr []int) {
	for i := 0; i < len(arr); i++ {
		minIndex := i
		for j := i + 1; j < len(arr)-1; j++ {
			if arr[j] < arr[minIndex] {
				minIndex = j
			}
		}
		if minIndex != i {
			arr[i], arr[minIndex] = arr[minIndex], arr[i]
		}
	}
}

// insertSort 插入排序 O(n^2) 稳定
func insertSort(arr []int) {
	for i := 0; i < len(arr); i++ {

	}
}
